#!/bin/bash
#表达式计算 expr
#表达式和运算符之间要有空格
#条件表达式要放在方括号之间，并且要有空格

#算数运算符
a=10
b=20

val=`expr $a + $b`
echo "a + b : $val"

val=`expr $a - $b`
echo "a -b : $val"

val=`expr $a \* $b`
echo "a * b : $val"

val=`expr $b / $a`
echo "b / a : $val"

val=`expr $b % $a`
echo "b % a : $val"

if [[ $a == $b ]]; then
	echo "a等于b"
fi
if [[ $a != $b ]]; then
	echo "a不等于b"
fi
#===================================================
#关系运算符 -eq  -ne  -gt  -lt  =ge,只支持数字
if [ $a -eq $b ]
then
   echo "$a -eq $b : a 等于 b"
else
   echo "$a -eq $b: a 不等于 b"
fi
if [ $a -ne $b ]
then
   echo "$a -ne $b: a 不等于 b"
else
   echo "$a -ne $b : a 等于 b"
fi
if [ $a -gt $b ]
then
   echo "$a -gt $b: a 大于 b"
else
   echo "$a -gt $b: a 不大于 b"
fi
if [ $a -lt $b ]
then
   echo "$a -lt $b: a 小于 b"
else
   echo "$a -lt $b: a 不小于 b"
fi
if [ $a -ge $b ]
then
   echo "$a -ge $b: a 大于或等于 b"
else
   echo "$a -ge $b: a 小于 b"
fi
if [ $a -le $b ]
then
   echo "$a -le $b: a 小于或等于 b"
else
   echo "$a -le $b: a 大于 b"
fi
#=============================================
#布尔运算符 ！非 -o 或运算 -a与运算
[ !false ]
[ $a -lt 20 -o $b -gt 100 ] 
[ $a -lt 20 -a $b -gt 100 ]
#=======================================
#逻辑运算符&&  ||
[[ $a -lt 100 && $b -gt 100]]
#======================================
#字符串运算符
a="abc"
d="def"
[ $a = $b ] #字符串相等返回true
[ $a != $b ] #字符串不相等返回true
[ -z $a ] #字符串长度为0返回true
[ -n $a ] #字符串长度不为零返回true
[ $a ] #字符串不为空返回true
#=============================
#文件测试运算符
[ -d $file ] #是否是目录
[ -f $file ] #是否是普通文件
[ -r $file ] #是否可读
[ -w $file ] #是否可写
[ -x $file ] #是否可执行
[ -s $file ] #文件大小是否大于0
